home *** CD-ROM | disk | FTP | other *** search
/ PC World 2006 July & August / PCWorld_2006-07-08_cd.bin / komunikace / apache / apache_2[1].2.2-win32-x86-no_ssl.msi / Data1.cab / _622EE9A48B67656E48DEFBFFFF5A94EE < prev    next >
Extensible Markup Language  |  2006-01-15  |  21KB  |  303 lines

  1. <?xml version="1.0" encoding="ISO-8859-1"?>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml" lang="de" xml:lang="de"><head><!--
  4.         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  5.               This file is generated from xml source: DO NOT EDIT
  6.         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  7.       -->
  8. <title>Beenden und Neustarten - Apache HTTP Server</title>
  9. <link href="./style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
  10. <link href="./style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
  11. <link href="./style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" />
  12. <link href="./images/favicon.ico" rel="shortcut icon" /></head>
  13. <body id="manual-page"><div id="page-header">
  14. <p class="menu"><a href="./mod/">Module</a> | <a href="./mod/directives.html">Direktiven</a> | <a href="./faq/">FAQ</a> | <a href="./glossary.html">Glossar</a> | <a href="./sitemap.html">Seitenindex</a></p>
  15. <p class="apache">Apache HTTP Server Version 2.2</p>
  16. <img alt="" src="./images/feather.gif" /></div>
  17. <div class="up"><a href="./"><img title="<-" alt="<-" src="./images/left.gif" /></a></div>
  18. <div id="path">
  19. <a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP-Server</a> > <a href="http://httpd.apache.org/docs/">Dokumentation</a> > <a href="./">Version 2.2</a></div><div id="page-content"><div id="preamble"><h1>Beenden und Neustarten</h1>
  20. <div class="toplang">
  21. <p><span>Verfⁿgbare Sprachen: </span><a href="./de/stopping.html" title="Deutsch"> de </a> |
  22. <a href="./en/stopping.html" hreflang="en" rel="alternate" title="English"> en </a> |
  23. <a href="./es/stopping.html" hreflang="es" rel="alternate" title="Espa±ol"> es </a> |
  24. <a href="./ja/stopping.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
  25. <a href="./ko/stopping.html" hreflang="ko" rel="alternate" title="Korean"> ko </a></p>
  26. </div>
  27.  
  28.     <p>Dieses Dokument umfasst das Beenden und Neustarten des
  29.     Apache auf Unix-Σhnlichen Systemen. Anwender von Windows NT, 2000
  30.     und XP sollten <a href="platform/windows.html#winsvc">Betreiben
  31.     des Apache als Dienst</a> lesen, wΣhrend hingegen Anwender von
  32.     Windows 9x sowie ME <a href="platform/windows.html#wincons">Betreiben
  33.     des Apache als Konsolenanwendung</a> lesen sollten, um mehr Informationen
  34.     zur Handhabung des Apache auf diesen Systemen zu erhalten.</p>
  35. </div>
  36. <div id="quickview"><ul id="toc"><li><img alt="" src="./images/down.gif" /> <a href="#introduction">Einleitung</a></li>
  37. <li><img alt="" src="./images/down.gif" /> <a href="#term">Beenden</a></li>
  38. <li><img alt="" src="./images/down.gif" /> <a href="#graceful">Unterbrechungsfreier Neustart</a></li>
  39. <li><img alt="" src="./images/down.gif" /> <a href="#hup">Neustarten</a></li>
  40. <li><img alt="" src="./images/down.gif" /> <a href="#gracefulstop">Rⁿcksichtsvolles Beenden</a></li>
  41. <li><img alt="" src="./images/down.gif" /> <a href="#race">Anhang: Signale und Wettlaufsituationen</a></li>
  42. </ul><h3>Siehe auch</h3><ul class="seealso"><li><code class="program"><a href="./programs/httpd.html">httpd</a></code></li><li><code class="program"><a href="./programs/apachectl.html">apachectl</a></code></li></ul></div>
  43. <div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
  44. <div class="section">
  45. <h2><a name="introduction" id="introduction">Einleitung</a></h2>
  46.  
  47.     <p>Um den Apache zu stoppen oder neu zu starten, mⁿssen Sie
  48.     ein Signal an den laufenden <code class="program"><a href="./programs/httpd.html">httpd</a></code>-Prozess senden. Es gibt
  49.     zwei M÷glichkeiten, diese Signale zu senden. Zum einen k÷nnen
  50.     Sie den Unix-Befehl <code>kill</code> verwenden, um den Prozessen
  51.     direkt Signale zu senden. Sie werden feststellen, dass auf Ihrem
  52.     System mehrere <code class="program"><a href="./programs/httpd.html">httpd</a></code>-Programme laufen. Sie sollten
  53.     jedoch nicht jedem dieser Prozesse ein Signal senden, sondern nur dem
  54.     Elternprozess, dessen PID im <code class="directive"><a href="./mod/mpm_common.html#pidfile">PidFile</a></code> steht. Das hei▀t, Sie
  55.     sollten es niemals n÷tig haben, einem anderen Prozess, als dem
  56.     Elternprozess, ein Signal zu senden. Es gibt drei Signale, die Sie an den
  57.     Elternprozess senden k÷nnen: <code><a href="#term">TERM</a></code>,
  58.     <code><a href="#hup">HUP</a></code> und
  59.     <code><a href="#graceful">USR1</a></code>, die nachfolgend beschrieben
  60.     werden.</p>
  61.  
  62.     <p>Um dem Elternprozess ein Signal zu senden, verwenden Sie einen
  63.     Befehl wie z.B.:</p>
  64.  
  65.     <div class="example"><p><code>kill -TERM `cat /usr/local/apache2/logs/httpd.pid`</code></p></div>
  66.  
  67.     <p>Die zweite Methode, dem <code class="program"><a href="./programs/httpd.html">httpd</a></code>-Prozess zu
  68.     signalisieren, ist die Verwendung der <code>-k</code>-Befehlszeilenoptionen
  69.     <code>stop</code>, <code>restart</code>, <code>graceful</code> und
  70.     <code>graceful-stop</code>, wie unten beschrieben. Dies sind Argumente des
  71.     <code class="program"><a href="./programs/httpd.html">httpd</a></code>-Programms, es wird jedoch empfohlen, sie unter
  72.     Verwendung des Steuerskripts <code class="program"><a href="./programs/apachectl.html">apachectl</a></code> zu senden,
  73.     welches diese an <code class="program"><a href="./programs/httpd.html">httpd</a></code> durchreicht.</p>
  74.  
  75.     <p>Nachdem Sie <code class="program"><a href="./programs/httpd.html">httpd</a></code> signalisiert haben, k÷nnen Sie
  76.     dessen Fortschritt beobachten, indem Sie eingeben:</p>
  77.  
  78.     <div class="example"><p><code>tail -f /usr/local/apache2/logs/error_log</code></p></div>
  79.  
  80.     <p>Passen Sie diese Beispiele entsprechend Ihren <code class="directive"><a href="./mod/core.html#serverroot">ServerRoot</a></code>- und <code class="directive"><a href="./mod/mpm_common.html#pidfile">PidFile</a></code>-Einstellungen an.</p>
  81. </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
  82. <div class="section">
  83. <h2><a name="term" id="term">Beenden</a></h2>
  84.  
  85.     <dl><dt>Signal: TERM</dt>
  86.       <dd><code>apachectl -k stop</code></dd>
  87.     </dl>
  88.  
  89.     <p>Das Senden des <code>TERM</code>- oder <code>stop</code>-Signals an
  90.     den Elternprozess veranlasst diesen, sofort zu versuchen, alle seine
  91.     Kindprozesse zu beenden. Es kann einige Sekunden dauern, bis alle
  92.     Kindprozesse komplett beendet sind. Danach beendet sich der Elternprozess
  93.     selbst. Alle gerade bearbeiteten Anfragen werden abgebrochen.
  94.     Es werden keine weiteren Anfragen mehr bedient.</p>
  95. </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
  96. <div class="section">
  97. <h2><a name="graceful" id="graceful">Unterbrechungsfreier Neustart</a></h2>
  98.  
  99.     <dl><dt>Signal: USR1</dt>
  100.       <dd><code>apachectl -k graceful</code></dd>
  101.     </dl>
  102.  
  103.     <p>Das <code>USR1</code>- oder <code>graceful</code>-Signal
  104.     veranlasst den Elternprozess, die Kinder <em>anzuweisen</em>, sich
  105.     nach Abschlu▀ ihrer momentanen bearbeiteten Anfrage zu beenden
  106.     (oder sich sofort zu beenden, wenn sie gerade keine Anfrage bedienen).
  107.     Der Elternprozess liest seine Konfigurationsdateien erneut ein und
  108.     ÷ffnet seine Logdateien neu. Wenn ein Kindprozess stirbt,
  109.     ersetzt der Elternprozess ihn durch ein Kind der neuen
  110.     Konfigurations-<em>Generation</em>. Dieses beginnt sofort damit,
  111.     neue Anfragen zu bedienen.</p>
  112.  
  113.     <p>Der Code ist dafⁿr ausgelegt, stets die MPM-Direktiven
  114.     zur Prozesssteuerung zu beachten, so dass die Anzahl der Prozesse
  115.     und Threads, die zur Bedienung der Clients bereitstehen, wΣhrend
  116.     des Neustarts auf die entsprechenden Werte gesetzt werden.
  117.     Weiterhin wird <code class="directive"><a href="./mod/mpm_common.html#startservers">StartServers</a></code>
  118.     auf folgende Art und Weise interpretiert: Wenn nach einer Sekunde
  119.     nicht mindestens <code class="directive"><a href="./mod/mpm_common.html#startservers">StartServers</a></code>
  120.     neue Kindprozesse erstellt wurden, dann werden, um den Durchsatz zu
  121.     beschleunigen, entsprechend weitere erstellt. Auf diese Weise versucht
  122.     der Code sowohl die Anzahl der Kinder entsprechend der Serverlast
  123.     anzupassen als auch Ihre Wⁿnsche hinsichtlich des Parameters
  124.     <code class="directive"><a href="./mod/mpm_common.html#startservers">StartServers</a></code> zu
  125.     berⁿcksichtigen.</p>
  126.  
  127.     <p>Benutzer von <code class="module"><a href="./mod/mod_status.html">mod_status</a></code> werden feststellen,
  128.     dass die Serverstatistiken <strong>nicht</strong> auf Null
  129.     zurⁿckgesetzt werden, wenn ein <code>USR1</code> gesendet
  130.     wurde. Der Code wurde so geschrieben, dass sowohl die Zeit minimiert
  131.     wird, in der der Server nicht in der Lage ist, neue Anfragen zu
  132.     bedienen (diese werden vom Betriebssystem in eine Warteschlange
  133.     gestellt, so dass sie auf keinen Fall verloren gehen) als auch
  134.     Ihre Parameter zur Feinabstimmung berⁿcksichtigt werden.
  135.     Um dies zu erreichen, muss die <em>Statustabelle</em> (Scoreboard),
  136.     die dazu verwendet wird, alle Kinder ⁿber mehrere Generationen
  137.     zu verfolgen, erhalten bleiben.</p>
  138.  
  139.     <p>Das Statusmodul benutzt au▀erdem ein <code>G</code>, um
  140.     diejenigen Kinder zu kennzeichen, die noch immer Anfragen bedienen,
  141.     welche gestartet wurden, bevor ein unterbrechungsfreier Neustart
  142.     veranla▀t wurde.</p>
  143.  
  144.     <p>Derzeit gibt es keine M÷glichkeit fⁿr ein
  145.     Log-Rotationsskript, das <code>USR1</code> verwendet, sicher
  146.     festzustellen, dass alle Kinder, die in ein vor dem Neustart
  147.     ge÷ffnetes Log schreiben, beendet sind. Wir schlagen vor, dass
  148.     Sie nach dem Senden des Signals <code>USR1</code> eine angemessene
  149.     Zeitspanne warten, bevor Sie das alte Log anfassen. Wenn beispielsweise
  150.     die meisten Ihrer Zugriffe bei Benutzern mit niedriger Bandbreite
  151.     weniger als 10 Minuten fⁿr eine vollstΣndige Antwort
  152.     ben÷tigen, dann k÷nnten Sie 15 Minuten warten, bevor Sie auf
  153.     das alte Log zugreifen.</p>
  154.  
  155.     <div class="note">Wenn Ihre Konfigurationsdatei Fehler enthΣlt, wΣhrend
  156.     Sie einen Neustart anweisen, dann wird Ihr Elternprozess nicht neu starten,
  157.     sondern sich mit einem Fehler beenden. Im Falle eines unterbrechungsfreien
  158.     Neustarts lΣ▀t er die Kinder weiterlaufen, wenn er sich beendet.
  159.     (Dies sind die Kinder, die sich "sanft beenden", indem sie ihre letzte
  160.     Anfrage erledigen.) Das verursacht Probleme, wenn Sie versuchen,
  161.     den Server neu zu starten -- er ist nicht in der Lage, sich an die Ports zu
  162.     binden, an denen er lauschen soll. Bevor Sie einen Neustart
  163.     durchfⁿhren, k÷nnen Sie die Syntax der Konfigurationsdateien
  164.     mit dem Befehlszeilenargument <code>-t</code> ⁿberprⁿfen
  165.     (siehe auch <code class="program"><a href="./programs/httpd.html">httpd</a></code>). Das garantiert
  166.     allerdings nicht, dass der Server korrekt starten wird. Um sowohl die
  167.     Syntax als auch die Semantik der Konfigurationsdateien zu prⁿfen,
  168.     k÷nnen Sie versuchen, <code class="program"><a href="./programs/httpd.html">httpd</a></code> als nicht-root-Benutzer
  169.     zu starten. Wenn dabei keine Fehler auftreten, wird er versuchen, seine
  170.     Sockets und Logdateien zu ÷ffnen und fehlschlagen, da er nicht root
  171.     ist (oder weil sich der gegenwΣrtig laufende <code class="program"><a href="./programs/httpd.html">httpd</a></code>
  172.     bereits diese Ports gebunden hat). Wenn er aus einem anderen Grund
  173.     fehlschlΣgt, dann liegt wahrscheinlich ein Konfigurationsfehler vor.
  174.     Der Fehler sollte behoben werden, bevor der unterbrechungsfreie Neustart
  175.     angewiesen wird.</div>
  176. </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
  177. <div class="section">
  178. <h2><a name="hup" id="hup">Neustarten</a></h2>
  179.  
  180.     <dl><dt>Signal: HUP</dt>
  181.       <dd><code>apachectl -k restart</code></dd>
  182.     </dl>
  183.  
  184.     <p>Das Senden des Signals <code>HUP</code> oder <code>restart</code>
  185.     veranla▀t den Elternprozess, wie bei <code>TERM</code> alle seine
  186.     Kinder zu beenden. Der Elternprozess beendet sich jedoch nicht. Er liest
  187.     seine Konfigurationsdateien neu ein und ÷ffnet alle Logdateien
  188.     erneut. Dann erzeugt er einen neuen Satz Kindprozesse und setzt die
  189.     Bedienung von Zugriffen fort.</p>
  190.  
  191.     <p>Benutzer von <code class="module"><a href="./mod/mod_status.html">mod_status</a></code> werden feststellen, dass
  192.     die Serverstatistiken auf Null gesetzt werden, wenn ein <code>HUP</code>
  193.     gesendet wurde.</p>
  194.  
  195.     <div class="note">Wenn Ihre Konfigurationsdatei einen Fehler enthΣlt,
  196.     wΣhrend Sie einen Neustart anweisen, dann wird Ihr Elternprozess
  197.     nicht neu starten, sondern sich mit einem Fehler beenden. Lesen Sie oben,
  198.     wie Sie das vermeiden k÷nnen.</div>
  199. </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
  200. <div class="section">
  201. <h2><a name="gracefulstop" id="gracefulstop">Rⁿcksichtsvolles Beenden</a></h2>
  202.  
  203.     <dl>
  204.         <dt>Signal: WINCH</dt>
  205.         <dd><code>apachectl -k gracefull stop</code></dd>
  206.     </dl>
  207.  
  208.     <p>Das <code>WINCH</code>- oder <code>graceful-stop</code>-Signal
  209.     veranlasst den Elternprozess, die Kinder <em>anzuweisen</em>, sich nach
  210.     Abschlu▀ ihrer momentan bearbeiteten Anfrage zu beenden (oder sich
  211.     sofort zu beenden, wenn sie gerade nichts bedienen). Der Elternprozess
  212.     entfernt dann sein <code class="directive"><a href="./mod/mpm_common.html#pidfile">PidFile</a></code> und
  213.     stellt das Lauschen auf allen Ports ein. Er lΣuft weiter und
  214.     beobachtet alle Kindprozesse, die noch Anfragen bearbeiten. Sobald alle
  215.     Kindprozesse fertig sind und beendet haben oder die mit <code class="directive"><a href="./mod/mpm_common.html#gracefulshutdowntimeout">GracefulShutdownTimeout</a></code> definierte
  216.     Zeitⁿberschreitung erreicht wurde, beendet sich der Elternprozess
  217.     ebenfalls. Jedem verbliebenen Kindprozess wird beim Erreichen der
  218.     Zeitⁿberschreitung das <code>TERM</code>-Signal gesendet, um diesen
  219.     zum Beenden zu zwingen.</p>
  220.     
  221.     <p>Ein <code>TERM</code>-Signal beendet den Elternprozess und alle
  222.     Kindprozesse unverzⁿglich, wenn sie sich im "graceful"-Status
  223.     <span class="transnote">(<em>Anm.d.▄.:</em> w÷rtl. "gnΣdiger" Status)</span> befinden. Da jedoch das
  224.     <code class="directive"><a href="./mod/mpm_common.html#pidfile">PidFile</a></code>dann schon gel÷scht
  225.     ist, werden Sie dieses Signal nicht mehr mit <code>apachectl</code> oder
  226.     <code>httpd</code> senden k÷nnen.</p>
  227.  
  228.     <div class="note"><p>Das Signal <code>graceful-stop</code> erm÷glicht Ihnen den
  229.     Betrieb mehrerer identisch konfigurierter Instanzen von <code>httpd</code>
  230.     zur gleichen Zeit. Dies ist eine mΣchtige FunktionalitΣt bei der
  231.     Aufrⁿstung des Apache. Sie kann jedoch bei einigen Konfigurationen
  232.     auch zur gegenseitigen Blockierung und zu Wettlaufsituationen
  233.     fⁿhren.</p>
  234.  
  235.     <p>Es ist besonders darauf zu achten, dass auf Festplatte gespeicherte
  236.     Dateien wie <code class="directive"><a href="./mod/core.html#lockfile">Lockfile</a></code> und <code class="directive"><a href="./mod/mod_cgid.html#scriptsock">ScriptSock</a></code> die Server-PID enthalten und ohne
  237.     Probleme nebeneinander existieren mⁿssen. Wann auch immer eine
  238.     Konfigurationsanweisung, ein Drittanbieter-Modul oder ein persistentes
  239.     CGI-Skript irgend eine Sperre oder eine Statusdatei auf Festplatte
  240.     speichert, muss besonders darauf geachtet werden, dass mehrere
  241.     gleichzeitig laufende Instanzen von <code>httpd</code> sich nicht
  242.     gegenseitig die Dateien zerst÷ren.</p>
  243.  
  244.     <p>Sie sollten ebenfalls vorsichtig mit m÷glichen Wettlaufsituationen
  245.     sein, wie beispielsweise der Verwendung von weitergeleiteter
  246.     Protokollierung nach der Art von <code class="program"><a href="./programs/rotatelogs.html">rotatelogs</a></code>. Mehrere
  247.     gleichzeitig laufende Instanzen von <code class="program"><a href="./programs/rotatelogs.html">rotatelogs</a></code>, die
  248.     versuchen, die gleichen Protokolldateien zu rotieren, k÷nnen sich
  249.     gegenseitig die Protokolldateien zerst÷ren.</p></div>
  250.  
  251. </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
  252. <div class="section">
  253. <h2><a name="race" id="race">Anhang: Signale und Wettlaufsituationen</a></h2>
  254.  
  255.     <p>Vor der Version 1.2b9 des Apache existierten verschiedene
  256.     <em>Wettlaufsituationen</em> <span class="transnote">(<em>Anm.d.▄.:</em> engl.: race
  257.     conditions)</span>, die den Neustart und die Signale beeinflu▀t
  258.     haben (einfach gesagt, eine Wettlaufstituation ist ein zeitabhΣngiges
  259.     Problem - wenn etwas zum falschen Zeitpunkt oder in der falschen
  260.     Reihenfolge geschieht, kommt es zu nicht erwⁿnschten Ergebnissen.
  261.     Geschehen die gleichen Dinge zur rechten Zeit, ist alles in Ordnung).  Bei
  262.     Architekturen mit dem "richtigen" <span class="transnote">(<em>Anm.d.▄.:</em> im Sinne von
  263.     "geeignet")</span> Funktionsumfang haben wir so viele eliminiert wie
  264.     wir nur konnten. Dennoch sollte beachtet werden, dass noch immer
  265.     Wettlaufsituationen auf bestimmten Architekturen existieren.</p>
  266.  
  267.     <p>Bei Architekturen, die ein <code class="directive"><a href="./mod/mpm_common.html#scoreboardfile">ScoreBoardFile</a></code> auf Platte verwenden,
  268.     kann die Statustabelle beschΣdigt werden.
  269.     Das kann zu "bind: Address already in use" ("bind: Adresse wird
  270.     bereits verwendet", nach einem <code>HUP</code>) oder "long lost
  271.     child came home!" ("Der verlorene Sohn ist heimgekehrt", nach einem
  272.     <code>USR1</code>) fⁿhren. Ersteres ist ein schwerer Fehler,
  273.     wΣrend letzteres lediglich bewirkt, dass der Server einen Eintrag
  274.     in der Statustabelle verliert. So kann es ratsam sein, unterbrechungsfreie
  275.     Neustarts zusammen mit einem gelegentlichen harten Neustart zu verwenden.
  276.     Diese Probleme lassen sich nur sehr schwer umgehen, aber
  277.     glⁿcklicherweise ben÷tigen die meisten Architekturen keine
  278.     Statustabelle in Form einer Datei. Bitte lesen Sie fⁿr Architekturen,
  279.     die sie ben÷tigen, die Dokumentation zu <code class="directive"><a href="./mod/mpm_common.html#scoreboardfile">ScoreBoardFile</a></code>.</p>
  280.  
  281.     <p>Alle Architekturen haben in jedem Kindprozess eine kleine
  282.     Wettlaufsituation, welche die zweite und nachfolgende Anfragen
  283.     einer persistenten HTTP-Verbindung (KeepAlive) umfa▀t. Der Prozess
  284.     kann nach dem Lesen der Anfragezeile aber vor dem Lesen der Anfrage-Header
  285.     enden. Es existiert eine Korrektur, die fⁿr 1.2 zu spΣt kam.
  286.     Theoretisch sollte das kein Problem darstellen, da
  287.     der KeepAlive-Client derartige Ereignisse aufgrund von
  288.     Netzwerk-Latenzzeiten und Auszeiten des Servers erwarten sollte.
  289.     In der Praxis scheint keiner von beiden beeinflu▀t zu werden
  290.     -- in einem Testfall wurde der Server zwanzig mal
  291.     pro Sekunde neu gestartet, wΣhrend Clients das Angebot abgegrast
  292.     haben, ohne kaputte Bilder oder leere Dokumente zu erhalten.</p>
  293. </div></div>
  294. <div class="bottomlang">
  295. <p><span>Verfⁿgbare Sprachen: </span><a href="./de/stopping.html" title="Deutsch"> de </a> |
  296. <a href="./en/stopping.html" hreflang="en" rel="alternate" title="English"> en </a> |
  297. <a href="./es/stopping.html" hreflang="es" rel="alternate" title="Espa±ol"> es </a> |
  298. <a href="./ja/stopping.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
  299. <a href="./ko/stopping.html" hreflang="ko" rel="alternate" title="Korean"> ko </a></p>
  300. </div><div id="footer">
  301. <p class="apache">Copyright 1995-2006 The Apache Software Foundation or its licensors, as applicable.<br />Lizenziert unter der <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
  302. <p class="menu"><a href="./mod/">Module</a> | <a href="./mod/directives.html">Direktiven</a> | <a href="./faq/">FAQ</a> | <a href="./glossary.html">Glossar</a> | <a href="./sitemap.html">Seitenindex</a></p></div>
  303. </body></html>